﻿//#include <stdio.h>
//#include <stdlib.h>
//int main() {
//    int i = 0, n = 0, count = 0, count2 = 0;
//    float average = 0;
//    fscanf(stdin, "%d", &n);
//    int* a = (int*)malloc(sizeof(int) * n);
//    for (i = 0; i < n; i++)
//    {
//        fscanf(stdin, "%d", a + i);
//        if (a[i] < 0)
//            count++;
//        if (a[i] > 0)
//        {
//            average += a[i];
//            count2++;
//        }
//    }
//    if (count2 == 0)
//        fprintf(stdout, "%d 0.0", count);
//    else
//        fprintf(stdout, "%d %.1f", count, average / count2 * 1.0);
//    free(a);
//    return 0;
//}

//#include"Slist.h"
//ListNode* ListCreate()//创建双向链表，最后一个结点数据为0
//{
//	ListNode* p = 0, * pa = 0, * head = 0;
//	head = p = (ListNode*)malloc(sizeof(ListNode));
//	fscanf(stdin, "%d", &p->_data);
//	while (p->_data != 0)
//	{
//		pa = (ListNode*)malloc(sizeof(ListNode));
//		fscanf(stdin, "%d", &pa->_data);
//		p->_next = pa;
//		pa->_prev = p;
//		p = pa;
//	}
//	p->_next = head;
//	head->_prev = p;
//	return head;
//}
//void ListDestory(ListNode* head)
//{
//	assert(head);
//	ListNode* head1 = head;
//	head = head->_next;
//	while (head->_next != head1)
//	{
//		ListNode* next = head->_next;
//		free(head);
//		head = next;
//	}
//	free(head);
//	free(head1);
//}
//void ListPrint(ListNode* head)
//{
//	assert(head);
//	ListNode* node = head;
//	do
//	{
//		if (node->_next == head)
//			fprintf(stdout, "%d\n", node->_data);
//		else
//			fprintf(stdout, "%d->", node->_data);
//		node = node->_next;
//	} while (node != head);
//}
//void ListPushBack(ListNode* head, LTDataType x)
//{
//	if (!head)
//	{
//		ListNode* head1 = (ListNode*)malloc(sizeof(ListNode));
//		head1->_data = x;
//		head1->_next = head1->_prev = 0;
//		return;
//	}
//	ListNode* last = head->_prev;
//	ListNode* next = (ListNode*)malloc(sizeof(ListNode));
//	next->_data = x;
//	next->_next = head;
//	next->_prev = last;
//	last->_next = next;
//	head->_prev = next;
//}
//void ListPopBack(ListNode* head)
//{
//	assert(head);
//	ListNode* last = head->_prev;
//	ListNode* second = last->_prev;
//	free(last);
//	second->_next = head;
//	head->_prev = second;
//}
//void ListPushFront(ListNode* head, LTDataType x)
//{
//	ListNode* second = (ListNode*)malloc(sizeof(ListNode));
//	second->_data = head->_data;
//	second->_next = head->_next;
//	second->_prev = head;
//	head->_data = x;
//	head->_next = second;
//}
//void ListPopFront(ListNode** head)
//{
//	ListNode* head1 = *head;
//	assert(head1);
//	ListNode* last = head1->_prev;
//	last->_next = head1->_next;
//	head1->_next->_prev = last;
//	*head = head1->_next;
//	free(head1);
//}
//ListNode* ListFind(ListNode* head, LTDataType x)//双向链表查找
//{
//	assert(head);
//	ListNode* node = head;
//	do
//	{
//		if (node->_data == x)
//			return node;
//		node = node->_next;
//	} while (node != head);
//	return 0;
//}
//void ListInsert(ListNode* pos, LTDataType x)//双向链表在pos的前面进行插入
//{
//	assert(pos);
//	ListNode* node = (ListNode*)malloc(sizeof(ListNode));
//	node->_data = x;
//	ListNode* next = pos->_next;
//	pos->_next = node;
//	node->_prev = pos;
//	node->_next = next;
//	next->_prev = node;
//}
//void ListErase(ListNode* pos)// 双向链表删除pos位置的节点
//{
//	assert(pos);
//	ListNode* next = pos->_next;
//	ListNode* last = pos->_prev;
//	last->_next = next;
//	next->_prev = last;
//	free(pos);
//}
//int main()
//{
//	fprintf(stdout, "建立的双向链表为: ");
//	ListNode* head = ListCreate();//创建双向链表
//
//	fprintf(stdout, "双向链表的数据: ");
//	ListPrint(head);// 双向链表打印
//
//	system("pause");
//
//	LTDataType x;
//	fprintf(stdout, "请输入在链表末尾插入的数据: ");
//	fscanf(stdin, "%d", &x);
//	ListPushBack(head, x);// 双向链表尾插
//
//	fprintf(stdout, "双向链表的数据: ");
//	ListPrint(head);// 双向链表打印
//
//	system("pause");
//
//	fprintf(stdout, "双向链表尾删后: ");
//	ListPopBack(head);// 双向链表尾删
//	ListPrint(head);// 双向链表打印
//
//	system("pause");
//
//	fprintf(stdout, "请输入在链表头部插入的数据: ");
//	fscanf(stdin, "%d", &x);
//	ListPushFront(head, x);// 双向链表头插
//
//	fprintf(stdout, "双向链表的数据: ");
//	ListPrint(head);// 双向链表打印
//
//	system("pause");
//
//	fprintf(stdout, "双向链表头删后: ");
//	ListPopFront(&head);// 双向链表头删
//	ListPrint(head);// 双向链表打印
//
//	system("pause");
//
//	fprintf(stdout, "请输入要查找的数据: ");
//	fscanf(stdin, "%d", &x);
//	ListNode* node = ListFind(head, x);// 双向链表查找
//	if (!node)
//		fprintf(stdout, "没有此数据\n");
//	else
//		fprintf(stdout, "%d\n", node->_data);
//
//	system("pause");
//
//	//ListInsert(pos, x);// 双向链表在pos的前面进行插入
//	//ListErase(pos);// 双向链表删除pos位置的节点
//
//	ListDestory(head);//双向链表的销毁
//	return 0;
//}